package com.yqw.onlineDocs.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yqw.onlineDocs.model.dto.document.DocumentQueryRequest;
import com.yqw.onlineDocs.model.entity.Document;
import com.yqw.onlineDocs.model.entity.User;
import com.yqw.onlineDocs.model.vo.DocumentVO;

import javax.servlet.http.HttpServletRequest;

/**
 * 文档服务
 * 
 */
public interface DocumentService extends IService<Document> {

  /**
   * 校验数据
   *
   * @param document
   * @param add      对创建的数据进行校验
   */
  void validDocument(Document document, boolean add);

  /**
   * 获取查询条件
   *
   * @param documentQueryRequest
   * @return
   */
  QueryWrapper<Document> getQueryWrapper(DocumentQueryRequest documentQueryRequest);

  /**
   * 获取文档封装
   *
   * @param document
   * @param request
   * @return
   */
  DocumentVO getDocumentVO(Document document, HttpServletRequest request);

  /**
   * 分页获取文档封装
   *
   * @param documentPage
   * @param request
   * @return
   */
  Page<DocumentVO> getDocumentVOPage(Page<Document> documentPage, HttpServletRequest request);

  /**
   * 使用AI生成文档内容
   *
   * @param prompt    用户提示词
   * @param loginUser 当前登录用户
   * @return 生成的文档内容
   */
  String generateDocumentContentByAi(String prompt, User loginUser);
}
